package com.ruoyi.business.service;

import java.util.List;
import java.util.Set;
import com.ruoyi.business.domain.Train;
import com.ruoyi.business.domain.TrainCarriage;
import com.ruoyi.business.domain.TrainStation;
import com.ruoyi.business.domain.dto.TrainStationGroupDTO;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 火车管理Service接口
 * 
 * @author ruoyi
 * @date 2025-03-06
 */
public interface ITrainService 
{
    /**
     * 查询火车管理
     * 
     * @param id 火车管理主键
     * @return 火车管理
     */
    public Train selectTrainById(Long id);

    /**
     * 查询火车管理列表
     * 
     * @param train 火车管理
     * @return 火车管理集合
     */
    public List<Train> selectTrainList(Train train);

    /**
     * 新增火车管理
     * 
     * @param train 火车管理
     * @return 结果
     */
    public int insertTrain(Train train);

    /**
     * 修改火车管理
     * 
     * @param train 火车管理
     * @return 结果
     */
    public int updateTrain(Train train);

    /**
     * 批量删除火车管理
     * 
     * @param ids 需要删除的火车管理主键集合
     * @return 结果
     */
    public int deleteTrainByIds(Long[] ids);

    /**
     * 删除火车管理信息
     * 
     * @param id 火车管理主键
     * @return 结果
     */
    public int deleteTrainById(Long id);

    /**
     * 批量新增火车管理
     * @param TrainList
     * @return 结果
     */
    public int insertTrains(List<Train> TrainList);

    /**
     * 根据车次编号查询火车信息
     *
     * @param code 车次编号
     * @return 火车信息
     */
    public Train selectTrainByCode(String code);

    /**
     * 下载火车管理导入模板 - 不包含错误字段
     *
     * @param response HTTP响应
     * @throws IOException IO异常
     */
    public void downloadCustomTemplate(HttpServletResponse response) throws IOException;

    /**
     * 清空火车数据
     * 
     * @return 结果
     */
    public int clearTrain();
}
